# 2.1 Overview of the IEEE-488 GPIB

Introduction The IEEE-488 or IEC 625 interface (GPIB) is a powerful tool for communication and control of devices used in the fields of measurement, automation, and data analysis. The acceptance of the interface as a worldwide standard had its start when Hewlett Packard created the HP-IB (Hewlett Packard Interface Bus). It allowed the company to equip completely different instruments with one standard interface.

In the following years, the HP-IB has become accepted worldwide without major changes in the form of the standards IEEE-488 and IEC 625. The only difference between IEEE-488 and IEC 625 is in the type of connector used.

The IEEE-488 uses a 24 pin amphenol connector, while the IEC 625 uses a 25 pin connector (called the MIN-D-SUB). The connection to different types can be made easily with the use of an adapter cable.

Fifteen devices can be operated on the IEEE-488 bus in a parallel manner. The management of the bus is handled by the Controller. By using a three line handshake protocol, it is assured that the slowest connected and addressed device determines the data transfer rate of the overall system. The benefit to this three line handshake is extremely reliable data transfer without the use of a separate timing parameter or clock.

The IEEE-488 Bus The IEEE-488 bus is a communication system of up to 15 devices with a single system controller (usually a PC or similar computer). The interfaces are connected with a 24 pin cable to one another.

Eight of the 24 lines provide byte oriented, paralleled data transfer. The other sixteen lines provide signals for communication control as well as the necessary grounding (GND). Each device that is connected to the bus, as well as the system controller, is identified by a unique address. An address is a primary address only, or a primary address together with a secondary address. Secondary addressing is commonly used to address subdevices of a device. A primary address ranges from 0 to 30 and a secondary address ranges from 0 to 31.

The controller A device that is capable of sending interface messages is called a controller. There may be only one active controller in a system. The controller which functions as the active controller once the system has been started is called the system controller. Interface messages are defined by the IEEE-488 standard and they are common to every device conforming to IEEE-488.1 or IEEE-488.2. Interface messages are used to setup the GPIB data transfer direction by specifiing a talker and one or more listener(s), reset the interface of a device and a device itself, query for status information and configure an instrument for remote control. A device receives these interface messages, which are identified by the ATN line being active. Interface messages (sometimes called commands) that affect every device connected to the IEEE-488 bus belong to the universal command group and interface messages the affect only the addressed device are called addressed command group.

Talker listener devices A device which can send device specific messages to the bus after it has been addressed is called a talker. A device which can receive device specific data from the bus is called a listener. Most devices do combine both of these characteristics. To transfer data there must be exactly one talker and at least one listener. Since device specific messages are not specified by the IEEE-488.1 specification these messages vary between the different instruments. The more recent IEEE-488.2 specification uses the SCPI (Standard Commands for Programmable Instruments) language to control instruments. These messages bases on the IEEE-488.1 hardware protocol. For this reason it is possible to control a IEEE-488.2 device by a controller that just conforms to IEEE-488.1.

Transfering data At the beginning of a communication sequence, the controller sends a talker and a listener address. Then, the ATN (attention) line is set to 'false' and the addressed talker starts with its data transfer. Each of the data bytes is transfered by using the three line handshake which enshures that the talker does not send another data byte before the listener has accepted the actual byte. The data transfer is terminated by a special character the EOS (End Of Sequence; usually a linefeed, ASCII code 10) or by a special control line, the EOI line (End Or Identify). Using the EOI line is commonly used for binary data transfer. After the data has been transfered, the controller sets ATN to 'true' and may initiate the next sequence. The controller can also address itself as a talker/listener which is the most usual case.